<?php

class Inventario_model extends CI_Model {

    private $tabla = "movimiento";
    private $tbl_arti = "articulos";

    public function __construct() {
        parent::__construct();
    }

    /** Metodo Utilitario* */
    function _required($required, $data) {
        foreach ($required as $field)
            if (!isset($data[$field]))
                return false;

        return true;
    }

    function Guardar_entrada_inventario($articulo, $fecha, $entrada) {

        $q2 = $this->db->select('max(id_movimiento) as id_movimiento');
        $q2 = $this->db->where('id_articulo', $articulo);
        $q2 = $this->db->get($this->tabla);
        $row = $q2->row();
        if ($row->id_movimiento != "") {
            $q3 = $this->db->select('existencia');
            $q3 = $this->db->where('id_movimiento', $row->id_movimiento);
            $q3 = $this->db->get($this->tabla);
            $row3 = $q3->row();
            $existencia = $entrada + $row3->existencia;
            $query = $this->db->query('update articulos set existencia= ' . $existencia . ' where id_articulo =' . $articulo);
//$this->db->where('id_articulo', $articulo);
            //$this->db->update($this->tbl_arti, $person);
        } else
        if ($row->id_movimiento == "") {
            $existencia = $entrada;
        }

        $data = array(
            'id_articulo' => $articulo,
            'fecha_movimiento' => $fecha,
            'entrada' => $entrada,
            'existencia' => $existencia
        );
        $this->db->insert($this->tabla, $data);
        return $this->db->insert_id();
    }

//fin

    function Listar_movimiento_articulos($numeroRegistros, $inicio) {
        if ($numeroRegistros == "") {
            $numeroRegistros = 0;
        }
        $query = $this->db->query('SELECT m.fecha_movimiento, a.nomb_articulo, 
                                   m.entrada, m.salida, m.existencia  
                                   FROM movimiento m, articulos a  
                                   WHERE m.id_articulo = a.id_articulo
                                   LIMIT ' . $numeroRegistros . ',' . $inicio);
       
        return $query->result();
    }

//fin
    function count_movimiento_articulos() {

        $query = $this->db->query('SELECT m.fecha_movimiento, a.nomb_articulo,
                                   m.entrada, m.salida, m.existencia
                                   FROM movimiento m, articulos a 
                                   WHERE m.id_articulo = a.id_articulo');

        return $query->num_rows();
    }

//fin


    /* método que devuelve una cierta cantidad de registros dependiendo del 
     * valor de los parámetros. Con la cláusula ‘limit’ establecemos el número 
     * de registros por página y desde que registro inicia la consulta.
     * En primer parámetro es la longitud y el segundo es el desplazamiento, */
    function Listar_existencia_articulos($numeroRegistros, $inicio) {
        if ($numeroRegistros == "") {
            $numeroRegistros = 0;
        }
        $query = $this->db->query('SELECT c.nomb_categoria, a.nomb_articulo, a.unidad_medida, a.existencia, a.observaciones
                                  FROM articulos AS a, categorias AS c 
                                  WHERE a.id_Categoria = c.id_categoria 
                                  LIMIT ' . $numeroRegistros . ',' . $inicio);
        
        return $query->result();
    }

//fin
    function count_existencia_articulos() {

        $query = $this->db->query('SELECT c.nomb_categoria, a.nomb_articulo, a.unidad_medida, a.existencia, a.observaciones
                                  FROM articulos AS a, categorias c WHERE a.id_Categoria = c.id_categoria ');

        return $query->num_rows();
    }

//fin
    function Guardar_salida_inventario($articulo, $fecha, $salida) {

        $q2 = $this->db->select('max(id_movimiento) as id_movimiento');
        $q2 = $this->db->where('id_articulo', $articulo);
        $q2 = $this->db->get($this->tabla);
        $row = $q2->row();
        if ($row->id_movimiento != "") {
            $q1 = $this->db->select('existencia');
            $q1 = $this->db->where('id_movimiento', $row->id_movimiento);
            $q1 = $this->db->get($this->tabla);
            $row1 = $q1->row();
            $existencia = $row1->existencia - $salida;
            $query = $this->db->query('update articulos set existencia= ' . $existencia . ' where id_articulo =' . $articulo);

            $data = array(
                'id_articulo' => $articulo,
                'fecha_movimiento' => $fecha,
                'salida' => $salida,
                'existencia' => $existencia
            );
            return $this->db->insert($this->tabla, $data);
        } else
        if ($row->id_movimiento == "") {
            echo "el articulo no hay existencia";
        }
    }

//fin
}

?>